#pragma once

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/tags.h>
#include <CGAL/enum.h>
#include <CGAL/Delaunay_triangulation_3.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Vector_3.h>
#include <CGAL/convex_hull_3.h>
#include "StringUtils.h"

#define PI    3.14159625

typedef CGAL::Exact_predicates_inexact_constructions_kernel   Kernel;
typedef CGAL::Delaunay_triangulation_3<Kernel>                CGALDelaunay;
typedef CGAL::Triangulation_3<Kernel>                         CGALTriangulation;
typedef CGAL::Plane_3<Kernel>                                 CGALPlane;
typedef CGAL::Polyhedron_3<Kernel>                            Polyhedron;
typedef Kernel::Point_3                                       Point;

typedef Polyhedron::Vertex_iterator                           Polyhedron_Vertex_iterator;
typedef Polyhedron::Vertex_handle                             Polyhedron_Vertex_handle;
typedef Polyhedron::Edge_iterator                             Polyhedron_Edge_iterator;
typedef Polyhedron::Halfedge                                  Polyhedron_Halfedge;
typedef Polyhedron_Halfedge::Halfedge_handle                  Polyhedron_Halfedge_handle;

typedef CGAL::Segment_3<Kernel>                               Segment;
typedef CGAL::Triangle_3<Kernel>                              Triangle;
typedef Kernel::FT                                            FT;
typedef CGAL::Vector_3<Kernel>                                Vector;
typedef CGAL::Plane_3<Kernel>                                 Plane;
typedef CGAL::Oriented_side                                   Oriented_side;
